from openpyxl import load_workbook
import os,sys
from pathlib import Path
from openpyxl.utils import get_column_letter  # 导入获取列字母的函数

# 文件路径
excel_path = os.path.join(Path(__file__).resolve().parent.parent, 'img', 'pmg.xlsx')

# 1. 加载整个工作簿
wb = load_workbook(excel_path)

# 2. 选择要修改的工作表
sheet_name = '驻点人员'  # 替换为你要修改的sheet名称
ws = wb[sheet_name]

# 3. 修改特定单元格（保留原有格式和公式）
# 方法1：直接修改单元格值（会保留格式但会覆盖公式）
ws['I10'].value = '新值'  # 修改B2单元格

# 方法2：修改单元格值但保留公式（如果需要）
# cell = ws['B2']
# if cell.data_type == 'f':  # 如果是公式单元格
#     print(f"单元格B2包含公式: {cell.value}")  # 可以查看但不修改公式
# else:
#     cell.value = '新值'

# 方法3：修改多个单元格
# ws.cell(row=3, column=4, value="另一个新值")  # 修改D3单元格

# 4. 保存工作簿（会保留所有格式、公式和其他sheet内容）
wb.save(excel_path)

# from openpyxl.styles import Font, PatternFill

# # 修改单元格并设置格式
# cell = ws['B2']
# cell.value = '重要数据'
# cell.font = Font(bold=True, color='FF0000')  # 红色加粗
# cell.fill = PatternFill('solid', fgColor='FFFF00')  # 黄色背景

# # 复制格式到其他单元格
# from openpyxl.styles import copy
# new_cell = ws['B3']
# new_cell.value = '同样格式'
# new_cell.font = copy(cell.font)
# new_cell.fill = copy(cell.fill)

# # 保存修改
# wb.save(excel_path)

# 新增：查询表格行列信息
max_row = ws.max_row
max_col = ws.max_column

print(f"表格共有 {max_row} 行, {max_col} 列")
print("列字母标识: ")
for col in range(1, max_col + 1):
    col_letter = get_column_letter(col)
    print(f"第 {col} 列: {col_letter}")